Kotlin与Android现代网络层:Retrofit + Coroutine + Flow

📚 共计 30 章节
01
课程导学与项目初始化
课程目标、技术栈概览、创建Android项目、配置Gradle依赖(Retrofit、OkHttp、Coroutine、Flow)
导学Gradle
02
Retrofit核心概念
什么是Retrofit、RESTful API设计原则、注解详解(@GET、@POST、@Path、@Query、@Body)
注解REST
03
OkHttp深度集成
OkHttpClient配置、拦截器(Interceptor)原理、日志拦截器(HttpLoggingInterceptor)、超时与重试机制
拦截器超时
04
协程(Coroutine)基础
协程概念、GlobalScope与lifecycleScope、suspend函数、withContext切换线程
协程suspend
05
Flow响应式编程
Flow是什么、冷流与热流、Flow的创建与收集、Flow的异常处理
Flow冷热流
06
Retrofit + Coroutine实战
将Retrofit接口声明为suspend函数、在ViewModel中调用、处理Loading与Error状态
CoroutineViewModel
07
Retrofit + Flow实战
将Retrofit接口返回Flow、使用Flow进行数据转换、结合StateFlow管理UI状态
FlowStateFlow
08
统一网络状态封装
创建Resource/Result密封类、封装网络请求的Loading/Success/Error状态、在UI层消费状态
密封类状态管理
09
依赖注入(Hilt)集成
Hilt基础概念、创建网络模块(NetworkModule)、提供Retrofit与OkHttp实例
HiltDI
10
MVVM架构实践
ViewModel与Repository模式、数据流从Repository到ViewModel再到UI的完整链路
MVVMRepository
11
缓存策略
OkHttp缓存配置、Retrofit离线缓存、结合Room实现本地持久化缓存
缓存Room
12
错误处理与重试
全局错误拦截器、协程的retry与retryWhen操作符、指数退避重试策略
重试指数退避
13
文件上传与下载
多文件上传(@Multipart)、断点续传原理、使用OkHttp的DownloadInterceptor
上传断点续传
14
Token管理与自动刷新
拦截器自动附加Token、Token过期自动刷新、并发请求的Token同步问题
Token拦截器
15
网络状态监听
ConnectivityManager使用、封装为Flow、在网络变化时自动重试请求
网络状态Flow
16
单元测试
MockWebServer模拟接口、测试Repository层、测试ViewModel层
测试MockWebServer
17
UI测试
使用Compose或Espresso测试网络请求触发的UI变化、IdlingResource的使用
UI测试Espresso
18
性能优化
连接池复用、数据压缩(Gzip)、减少数据包大小、使用Protocol Buffers
性能Gzip
19
安全实践
HTTPS与证书锁定(Certificate Pinning)、防止中间人攻击、敏感信息加密
安全证书锁定
20
多BaseURL支持
动态切换BaseURL、多Retrofit实例管理、请求级别的URL覆盖
BaseURL动态切换
21
请求取消与生命周期管理
协程的Job取消、lifecycleScope自动取消、避免内存泄漏
生命周期取消
22
分页加载
Paging 3库集成、从网络获取分页数据、结合RemoteMediator实现网络+本地分页
Paging 3分页
23
WebSocket实战
OkHttp WebSocket客户端、使用Flow封装WebSocket消息、心跳机制
WebSocket心跳
24
GraphQL集成
什么是GraphQL、Apollo Kotlin客户端、与Retrofit对比
GraphQLApollo
25
gRPC入门
gRPC概念、Protobuf定义、Kotlin gRPC客户端实现
gRPCProtobuf
26
网络层架构演进
从单模块到多模块、网络层作为独立Module、接口与实现分离
架构模块化
27
日志与监控
Chucker拦截器、网络请求耗时统计、自定义Metrics上报
日志监控
28
多环境配置
Debug/Release/Staging环境切换、BuildConfig与gradle配置
环境BuildConfig
29
实战项目一:新闻客户端
实现新闻列表、详情、搜索功能,完整应用上述技术
实战新闻
30
实战项目二:即时通讯App
实现登录、好友列表、消息发送与接收,综合运用WebSocket与REST API
实战即时通讯